const path = require("path");

//日志根目录
const baseLogPath = path.resolve(__dirname, "../logs");

/*报错输出日志*/
//错误日志目录、文件名、输出完整路径
const errorPath = "/error";
const errorFileName = "error";
let errorLogPath = baseLogPath + errorPath + "/" + errorFileName;

/*请求数据得到响应时输出响应日志*/
//响应日志目录、文件名、输出完整路径
const responsePath = "/response";
const responseFileName = "response";
let responseLogPath = baseLogPath + responsePath + "/" + responseFileName;
console.log(responseLogPath);
/*操作数据库进行增删改等敏感操作记录日志*/
//操作日志目录、文件名、输出完整路径
const handlePath = "/handle";
const handleFileName = "handle";
let handleLogPath = baseLogPath + handlePath + "/" + handleFileName;

module.exports = {
  //日志格式等设置
  appenders: {
    "rule-console": { type: "console" },
    errorLogger: {
      type: "dateFile", // 日志类型
      filename: errorLogPath,  // 输出文件名
      pattern: "-yyyy-MM-dd-hh.log",  // 文件后缀
      alwaysIncludePattern: true, //
      encoding: "utf-8", // 编码格式
      maxLogSize: 1024 * 1024 * 1, // 每个文件最大存储内容
      numBackups: 3, // 备份文件的数量，主文件 + 备份 共3个文件，
      path: errorPath, // 路径
      daysToKeep: 30, // 保存天数
    },
    resLogger: {
      type: "dateFile", // 日志类型
      filename: responseLogPath,  // 输出文件名
      pattern: "-yyyy-MM-dd-hh.log",  // 文件后缀
      alwaysIncludePattern: true, //
      encoding: "utf-8", // 编码格式
      maxLogSize: 1024 * 1024 * 1, // 每个文件最大存储内容
      numBackups: 3, // 备份文件的数量，主文件 + 备份 共3个文件，
      path: responsePath, // 路径
      daysToKeep: 30, // 保存天数
    },
    handleLogger: {
      type: "dateFile", // 日志类型
      filename: handleLogPath,  // 输出文件名
      pattern: "-yyyy-MM-dd-hh.log",  // 文件后缀
      alwaysIncludePattern: true, //
      encoding: "utf-8", // 编码格式
      maxLogSize: 1024 * 1024 * 1, // 每个文件最大存储内容
      numBackups: 3, // 备份文件的数量，主文件 + 备份 共3个文件，
      path: responsePath, // 路径
      daysToKeep: 30, // 保存天数
    },
  },
  //供外部调用的名称和对应设置定义
  categories: {
    default: { appenders: ["rule-console"], level: "all" },
    resLogger: { appenders: ["resLogger"], level: "info" },
    errorLogger: { appenders: ["errorLogger"], level: "error" },
    handleLogger: { appenders: ["handleLogger"], level: "all" },
    http: { appenders: ["resLogger"], level: "info" },
  },
  baseLogPath: baseLogPath,
};
